package com.ruoyi.yf.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.system.domain.SysDept;
import com.ruoyi.system.domain.SysUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 条形码对象 yf_tag
 *
 * @author XiaoYi...
 * @date 2020-03-17
 * 3692f55f-99c9-4439-aacd-d795aff1fa2b
 */
@ApiModel(value = "医废")
// @JsonInclude(JsonInclude.Include.NON_NULL)      // @ResponseBody转json，字段为NULL或者为空不参加序列化方法汇总
public class YfTag extends BaseEntity {
    private static final long serialVersionUID = 1L;


    /**
     * 识别码
     */
    @ApiModelProperty(value = "医废识别码")
    private String codeid;

    @ApiModelProperty(value = "袋数")
    @Excel(name = "医废袋数 默认1")
    private Long bag;
    /**
     * 采集用户sys_user表
     */
    @ApiModelProperty(value = "采集员用户id")
    @Excel(name = "采集用户sys_user表")
    private Long collectUserId;

    /**
     * 采集用户姓名
     */
    private String collectUserName;

    /**
     * 来源垃圾桶id yf_bucket表
     */
    @Excel(name = "来源垃圾桶id yf_bucket表")
    @ApiModelProperty(value = "来源垃圾桶")
    private Long sourceBucketId;

    /**
     * 采集扫码时间
     */
    @Excel(name = "采集扫码时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date collectScanDate;

    /**
     * 来源科室 yf_dept表
     */
    @Excel(name = "来源科室 ")
    private Long sourceDeptId;

    @Excel(name = "来源科室名称 ")
    private String sourceDeptName;

    /**
     * 科室交接人id、姓名
     */
    private String nurseId;

    private String nurseName;

    /**
     * 扫描来源科室时间
     */
    @Excel(name = "扫描来源科室时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scanDeptDate;

    /**
     * 医废类别 yf_trash_type
     */
    @Excel(name = "医废类别 yf_trash_type")
    private String trashType;

    /**
     * 医废类别label
     */
    private String trashTypeName;

    /**
     * 重量输入方式 yf_weight_type
     */
    @Excel(name = "重量输入方式 yf_weight_type")
    private String weightInputType;

    /**
     * 重量
     */
    @Excel(name = "重量")
    private Double weight;

    /**
     * 照片 url地址
     */
    @Excel(name = "照片 url地址")
    private String img;
    private Date imgDate;
    private String img1;
    private Date img1Date;
    private String collImg2;
    private Date collImg2Date;
    private String img2;
    private Date img2Date;
    private String img3;
    private Date img3Date;
    private String img4;
    private Date img4Date;

    // 2020-07-21 新增字段
    private String standardDeptCode;   // 全国统一标准科室代码
    private String standardDeptName;   // 全国统一标准科室名称
    private Double outWeight;           // 出库医废重量
    private Long outBag;                // 出库医废袋数
    private Long restBag;               // 剩余未出库医废袋数
    private Double restWeight;          // 剩余未出库医废重量
    private Long thisTimeOutBag;        // 本次出库医废袋数
    private Double thisTimeOutWeight;   // 本次出库医废重量

    private String isBoxedPrint;        // 是否已封箱  0 未封    1 已封
    
    /**
     * 采集上传时间（所有统计等以此为医废起始时间）
     */
    @Excel(name = "采集上传时间", readConverterExp = "所=有统计等以此为医废起始时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date collectUpdateDate;

    /**
     * 转运用户 sys_user表 （楼层转运到暂存处）
     */
    @Excel(name = "入库用户 sys_user表")
    private Long transUserId;

    /**
     * 转运用户姓名
     */
    private String transUserName;

    /**
     * 转运时间（楼层转运到暂存处）
     */
    private Date transDate;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date transDateStr;


    /**
     * 入库用户 sys_user表
     */
    @Excel(name = "入库用户 sys_user表")
    private Long intoUserId;

    /**
     * 入库用户姓名
     */
    private String intoUserName;

    /**
     * 暂存处  yf_dept表
     */
    @Excel(name = "暂存处  yf_dept表")
    private Long stagingId;

    private String stagingName;

    public String getCollImg2() {
        return collImg2;
    }

    public void setCollImg2(String collImg2) {
        this.collImg2 = collImg2;
    }

    public Date getCollImg2Date() {
        return collImg2Date;
    }

    public void setCollImg2Date(Date collImg2Date) {
        this.collImg2Date = collImg2Date;
    }

    /**
     * 入库垃圾桶id  yf_bucket表
     */
    @Excel(name = "入库垃圾桶id  yf_bucket表")
    private Long intoBucketId;

    /**
     * 入库时间
     */
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date intoDate;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date intoDateStr;

    /**
     * 出库用户 sys_user
     */
    @Excel(name = "出库用户 sys_user")
    private Long outUserId;

    /**
     * 出库用户姓名
     */
    private String outUserName;

    /**
     * 出库垃圾桶id  yf_bucket表
     */
    @Excel(name = "出库垃圾桶id  yf_bucket表")
    private Long outBucketId;

    /**
     * 出库时间
     */
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outDate;

    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date outDateStr;

    /**
     * 医院 sys_dept表
     */
    @Excel(name = "医院 sys_dept表")
    private Long hospitalId;
    private String hospitalName;

    // 处置公司id
    private Long disposalId;
    private Long truckId;
    private Long truckerId;

    /**
     * 创建者 sys_user表
     */
//    @Excel(name = "创建者 sys_user表")
//    private Long createId;
//
//    /**
//     * 更新者 sys_user表
//     */
//    @Excel(name = "更新者 sys_user表")
//    private Long updateId;

    /**
     * 医废垃圾出入库状态  yf_trash_status
     */
    @Excel(name = "医废垃圾出入库状态  yf_trash_status")
    private String trashStatus;
    private String trashStatusName;

    /**
     * 出库运输车辆id
     */
    @Excel(name = "出库运输车辆id")
    private Long outCarId;

    /**
     * 删除状态 del_flag
     */
    private String delFlag;

    /**
     * 状态0:正常 1:异常 	yf_exception_level
     */
    @Excel(name = "状态0:正常 1:异常 	yf_exception_level")
    private String status;

    /**
     * 采集设备 id
     */
    @Excel(name = "采集设备 id")
    @ApiModelProperty(example = "1111", name = "collectId", required = true, hidden = true)
    private Long collectId;

    /**
     * 入库设备 id
     */
    @Excel(name = "入库设备 id")
    private Long intoId;

    /**
     * 出库设备 id
     */
    @Excel(name = "出库设备 id")
    private Long outId;

    /**
     * 采集设备信息（请求方式&amp;IP地址&amp;系统&amp;型号&amp;版本&amp;）
     */
    @ApiModelProperty(example = "请求方式&IP地址&系统&型号&版本&", name = "collectDetails", required = true)
    @Excel(name = "采集设备信息", readConverterExp = "请求方式&IP地址&系统&型号&版本&")
    private String collectDetails;

    /**
     * 入库设备信息（请求方式&amp;IP地址&amp;系统&amp;型号&amp;版本&amp;）
     */
    @Excel(name = "入库设备信息", readConverterExp = "请求方式&IP地址&系统&型号&版本&")
    private String intoDetails;

    /**
     * 出库设备信息（请求方式&amp;IP地址&amp;系统&amp;型号&amp;版本&amp;）
     */
    @Excel(name = "出库设备信息", readConverterExp = "请求方式&IP地址&系统&型号&版本&")
    private String outDetails;

    /**
     * 更新方式 yf_update_way
     */
    @Excel(name = "更新方式 yf_update_way")
    private String updateWay;


    private SysUser user;

    private SysDept dept;


    public SysUser getUser() {
        if (user == null) {
            user = new SysUser();
        }
        return user;
    }

    public void setUser(SysUser user) {
        this.user = user;
    }

    public SysDept getDept() {
        if (dept == null) {
            dept = new SysDept();
        }
        return dept;
    }

    public String getCollectUserName() {
        return collectUserName;
    }

    public void setCollectUserName(String collectUserName) {
        this.collectUserName = collectUserName;
    }

    public String getTrashTypeName() {
        return trashTypeName;
    }

    public void setTrashTypeName(String trashTypeName) {
        this.trashTypeName = trashTypeName;
    }

    public Long getTransUserId() {
        return transUserId;
    }

    public void setTransUserId(Long transUserId) {
        this.transUserId = transUserId;
    }

    public String getTransUserName() {
        return transUserName;
    }

    public void setTransUserName(String transUserName) {
        this.transUserName = transUserName;
    }

    public Date getTransDate() {
        return transDate;
    }

    public void setTransDate(Date transDate) {
        this.transDate = transDate;
    }

    public String getIntoUserName() {
        return intoUserName;
    }

    public void setIntoUserName(String intoUserName) {
        this.intoUserName = intoUserName;
    }

    public String getOutUserName() {
        return outUserName;
    }

    public void setOutUserName(String outUserName) {
        this.outUserName = outUserName;
    }

    public String getStagingName() {
        return stagingName;
    }

    public void setStagingName(String stagingName) {
        this.stagingName = stagingName;
    }

    public Long getBag() {
        return bag;
    }

    public void setBag(Long bag) {
        this.bag = bag;
    }

    public void setDept(SysDept dept) {
        this.dept = dept;
    }

    public void setCodeid(String codeid) {
        this.codeid = codeid;
    }

    public String getCodeid() {
        return codeid;
    }

    public void setCollectUserId(Long collectUserId) {
        this.collectUserId = collectUserId;
    }

    public Long getCollectUserId() {
        return collectUserId;
    }

    public void setSourceBucketId(Long sourceBucketId) {
        this.sourceBucketId = sourceBucketId;
    }

    public Long getSourceBucketId() {
        return sourceBucketId;
    }

    public void setCollectScanDate(Date collectScanDate) {
        this.collectScanDate = collectScanDate;
    }

    public Date getCollectScanDate() {
        return collectScanDate;
    }

    public void setSourceDeptId(Long sourceDeptId) {
        this.sourceDeptId = sourceDeptId;
    }

    public Long getSourceDeptId() {
        return sourceDeptId;
    }

    public String getSourceDeptName() {
        return sourceDeptName;
    }

    public void setSourceDeptName(String sourceDeptName) {
        this.sourceDeptName = sourceDeptName;
    }

    public void setScanDeptDate(Date scanDeptDate) {
        this.scanDeptDate = scanDeptDate;
    }

    public Date getScanDeptDate() {
        return scanDeptDate;
    }

    public void setTrashType(String trashType) {
        this.trashType = trashType;
    }

    public String getTrashType() {
        return trashType;
    }

    public void setWeightInputType(String weightInputType) {
        this.weightInputType = weightInputType;
    }

    public String getWeightInputType() {
        return weightInputType;
    }

    public void setWeight(Double weight) {
        this.weight = weight;
    }

    public Double getWeight() {
        return weight;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getImg() {
        return img;
    }

    public void setCollectUpdateDate(Date collectUpdateDate) {
        this.collectUpdateDate = collectUpdateDate;
    }

    public Date getCollectUpdateDate() {
        return collectUpdateDate;
    }

    public void setIntoUserId(Long intoUserId) {
        this.intoUserId = intoUserId;
    }

    public Long getIntoUserId() {
        return intoUserId;
    }

    public void setStagingId(Long stagingId) {
        this.stagingId = stagingId;
    }

    public Long getStagingId() {
        return stagingId;
    }

    public void setIntoBucketId(Long intoBucketId) {
        this.intoBucketId = intoBucketId;
    }

    public Long getIntoBucketId() {
        return intoBucketId;
    }

    public void setIntoDate(Date intoDate) {
        this.intoDate = intoDate;
    }

    public Date getIntoDate() {
        return intoDate;
    }

    public void setOutUserId(Long outUserId) {
        this.outUserId = outUserId;
    }

    public Long getOutUserId() {
        return outUserId;
    }

    public void setOutBucketId(Long outBucketId) {
        this.outBucketId = outBucketId;
    }

    public Long getOutBucketId() {
        return outBucketId;
    }

    public void setOutDate(Date outDate) {
        this.outDate = outDate;
    }

    public Date getOutDate() {
        return outDate;
    }

    public Long getDisposalId() {
        return disposalId;
    }

    public void setDisposalId(Long disposalId) {
        this.disposalId = disposalId;
    }

    public Long getTruckId() {
        return truckId;
    }

    public void setTruckId(Long truckId) {
        this.truckId = truckId;
    }

    public Long getTruckerId() {
        return truckerId;
    }

    public void setTruckerId(Long truckerId) {
        this.truckerId = truckerId;
    }

    public void setHospitalId(Long hospitalId) {
        this.hospitalId = hospitalId;
    }

    public Long getHospitalId() {
        return hospitalId;
    }

    public String getHospitalName() {
        return hospitalName;
    }

    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }

    //    public void setCreateId(Long createId) {
//        this.createId = createId;
//    }
//
//    public Long getCreateId() {
//        return createId;
//    }
//
//    public void setUpdateId(Long updateId) {
//        this.updateId = updateId;
//    }
//
//    public Long getUpdateId() {
//        return updateId;
//    }

    public void setTrashStatus(String trashStatus) {
        this.trashStatus = trashStatus;
    }

    public String getTrashStatus() {
        return trashStatus;
    }

    public void setTrashStatusName(String trashStatusName) {
        this.trashStatusName = trashStatusName;
    }

    public String getTrashStatusName() {
        return trashStatusName;
    }

    public void setOutCarId(Long outCarId) {
        this.outCarId = outCarId;
    }

    public Long getOutCarId() {
        return outCarId;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setCollectId(Long collectId) {
        this.collectId = collectId;
    }

    public Long getCollectId() {
        return collectId;
    }

    public void setIntoId(Long intoId) {
        this.intoId = intoId;
    }

    public Long getIntoId() {
        return intoId;
    }

    public void setOutId(Long outId) {
        this.outId = outId;
    }

    public Long getOutId() {
        return outId;
    }

    public void setCollectDetails(String collectDetails) {
        this.collectDetails = collectDetails;
    }

    public String getCollectDetails() {
        return collectDetails;
    }

    public void setIntoDetails(String intoDetails) {
        this.intoDetails = intoDetails;
    }

    public String getIntoDetails() {
        return intoDetails;
    }

    public void setOutDetails(String outDetails) {
        this.outDetails = outDetails;
    }

    public String getOutDetails() {
        return outDetails;
    }

    public void setUpdateWay(String updateWay) {
        this.updateWay = updateWay;
    }

    public String getUpdateWay() {
        return updateWay;
    }

    public Date getImgDate() {
        return imgDate;
    }

    public void setImgDate(Date imgDate) {
        this.imgDate = imgDate;
    }

    public String getImg1() {
        return img1;
    }

    public void setImg1(String img1) {
        this.img1 = img1;
    }

    public Date getImg1Date() {
        return img1Date;
    }

    public void setImg1Date(Date img1Date) {
        this.img1Date = img1Date;
    }

    public String getImg2() {
        return img2;
    }

    public void setImg2(String img2) {
        this.img2 = img2;
    }

    public Date getImg2Date() {
        return img2Date;
    }

    public void setImg2Date(Date img2Date) {
        this.img2Date = img2Date;
    }

    public String getImg3() {
        return img3;
    }

    public void setImg3(String img3) {
        this.img3 = img3;
    }

    public Date getImg3Date() {
        return img3Date;
    }

    public void setImg3Date(Date img3Date) {
        this.img3Date = img3Date;
    }

    public String getImg4() {
        return img4;
    }

    public void setImg4(String img4) {
        this.img4 = img4;
    }

    public Date getImg4Date() {
        return img4Date;
    }

    public void setImg4Date(Date img4Date) {
        this.img4Date = img4Date;
    }

    public String getNurseId() {
        return nurseId;
    }

    public void setNurseId(String nurseId) {
        this.nurseId = nurseId;
    }

    public String getNurseName() {
        return nurseName;
    }

    public void setNurseName(String nurseName) {
        this.nurseName = nurseName;
    }

    public String getStandardDeptCode() {
        return standardDeptCode;
    }

    public void setStandardDeptCode(String standardDeptCode) {
        this.standardDeptCode = standardDeptCode;
    }

    public String getStandardDeptName() {
        return standardDeptName;
    }

    public void setStandardDeptName(String standardDeptName) {
        this.standardDeptName = standardDeptName;
    }

    public Double getOutWeight() {
        return outWeight;
    }

    public void setOutWeight(Double outWeight) {
        this.outWeight = outWeight;
    }

    public Long getOutBag() {
        return outBag;
    }

    public void setOutBag(Long outBag) {
        this.outBag = outBag;
    }

    public Long getRestBag() {
        return restBag;
    }

    public void setRestBag(Long restBag) {
        this.restBag = restBag;
    }

    public Double getRestWeight() {
        return restWeight;
    }

    public void setRestWeight(Double restWeight) {
        this.restWeight = restWeight;
    }

    public Long getThisTimeOutBag() {
        return thisTimeOutBag;
    }

    public void setThisTimeOutBag(Long thisTimeOutBag) {
        this.thisTimeOutBag = thisTimeOutBag;
    }

    public Double getThisTimeOutWeight() {
        return thisTimeOutWeight;
    }

    public void setThisTimeOutWeight(Double thisTimeOutWeight) {
        this.thisTimeOutWeight = thisTimeOutWeight;
    }

    public Date getTransDateStr() {
        return transDateStr;
    }

    public void setTransDateStr(Date transDateStr) {
        this.transDateStr = transDateStr;
    }

    public Date getIntoDateStr() {
        return intoDateStr;
    }

    public void setIntoDateStr(Date intoDateStr) {
        this.intoDateStr = intoDateStr;
    }

    public Date getOutDateStr() {
        return outDateStr;
    }

    public void setOutDateStr(Date outDateStr) {
        this.outDateStr = outDateStr;
    }

    public String getIsBoxedPrint() {
        return isBoxedPrint;
    }

    public void setIsBoxedPrint(String isBoxedPrint) {
        this.isBoxedPrint = isBoxedPrint;
    }

    @Override
    public String toString() {
        return "YfTag{" +
                "codeid='" + codeid + '\'' +
                ", bag=" + bag +
                ", collectUserId=" + collectUserId +
                ", collectUserName='" + collectUserName + '\'' +
                ", sourceBucketId=" + sourceBucketId +
                ", collectScanDate=" + collectScanDate +
                ", sourceDeptId=" + sourceDeptId +
                ", sourceDeptName='" + sourceDeptName + '\'' +
                ", nurseId='" + nurseId + '\'' +
                ", nurseName='" + nurseName + '\'' +
                ", scanDeptDate=" + scanDeptDate +
                ", trashType='" + trashType + '\'' +
                ", trashTypeName='" + trashTypeName + '\'' +
                ", weightInputType='" + weightInputType + '\'' +
                ", weight=" + weight +
                ", img='" + img + '\'' +
                ", imgDate=" + imgDate +
                ", img1='" + img1 + '\'' +
                ", img1Date=" + img1Date +
                ", collImg2='" + collImg2 + '\'' +
                ", collImg2Date=" + collImg2Date +
                ", img2='" + img2 + '\'' +
                ", img2Date=" + img2Date +
                ", img3='" + img3 + '\'' +
                ", img3Date=" + img3Date +
                ", img4='" + img4 + '\'' +
                ", img4Date=" + img4Date +
                ", standardDeptCode='" + standardDeptCode + '\'' +
                ", standardDeptName='" + standardDeptName + '\'' +
                ", outWeight=" + outWeight +
                ", outBag=" + outBag +
                ", restBag=" + restBag +
                ", restWeight=" + restWeight +
                ", thisTimeOutBag=" + thisTimeOutBag +
                ", thisTimeOutWeight=" + thisTimeOutWeight +
                ", isBoxedPrint='" + isBoxedPrint + '\'' +
                ", collectUpdateDate=" + collectUpdateDate +
                ", transUserId=" + transUserId +
                ", transUserName='" + transUserName + '\'' +
                ", transDate=" + transDate +
                ", transDateStr=" + transDateStr +
                ", intoUserId=" + intoUserId +
                ", intoUserName='" + intoUserName + '\'' +
                ", stagingId=" + stagingId +
                ", stagingName='" + stagingName + '\'' +
                ", intoBucketId=" + intoBucketId +
                ", intoDate=" + intoDate +
                ", intoDateStr=" + intoDateStr +
                ", outUserId=" + outUserId +
                ", outUserName='" + outUserName + '\'' +
                ", outBucketId=" + outBucketId +
                ", outDate=" + outDate +
                ", outDateStr=" + outDateStr +
                ", hospitalId=" + hospitalId +
                ", hospitalName='" + hospitalName + '\'' +
                ", trashStatus='" + trashStatus + '\'' +
                ", trashStatusName='" + trashStatusName + '\'' +
                ", outCarId=" + outCarId +
                ", delFlag='" + delFlag + '\'' +
                ", status='" + status + '\'' +
                ", collectId=" + collectId +
                ", intoId=" + intoId +
                ", outId=" + outId +
                ", collectDetails='" + collectDetails + '\'' +
                ", intoDetails='" + intoDetails + '\'' +
                ", outDetails='" + outDetails + '\'' +
                ", updateWay='" + updateWay + '\'' +
                ", user=" + user +
                ", dept=" + dept +
                '}';
    }
//    @Override
//    public String toString() {
//        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
//                .append("codeid", getCodeid())
//                .append("bag", getBag())
//                .append("collectUserId", getCollectUserId())
//                .append("sourceBucketId", getSourceBucketId())
//                .append("collectScanDate", getCollectScanDate())
//                .append("sourceDeptId", getSourceDeptId())
//                .append("scanDeptDate", getScanDeptDate())
//                .append("trashType", getTrashType())
//                .append("weightInputType", getWeightInputType())
//                .append("weight", getWeight())
//                .append("img", getImg())
//                .append("collectUpdateDate", getCollectUpdateDate())
//                .append("intoUserId", getIntoUserId())
//                .append("stagingId", getStagingId())
//                .append("intoBucketId", getIntoBucketId())
//                .append("intoDate", getIntoDate())
//                .append("outUserId", getOutUserId())
//                .append("outBucketId", getOutBucketId())
//                .append("outDate", getOutDate())
//                .append("hospitalId", getHospitalId())
//                .append("createId", getCreateId())
//                .append("createBy", getCreateBy())
//                .append("createTime", getCreateTime())
//                .append("updateId", getUpdateId())
//                .append("updateBy", getUpdateBy())
//                .append("updateTime", getUpdateTime())
//                .append("trashStatus", getTrashStatus())
//                .append("outCarId", getOutCarId())
//                .append("delFlag", getDelFlag())
//                .append("status", getStatus())
//                .append("collectId", getCollectId())
//                .append("intoId", getIntoId())
//                .append("outId", getOutId())
//                .append("collectDetails", getCollectDetails())
//                .append("intoDetails", getIntoDetails())
//                .append("outDetails", getOutDetails())
//                .append("updateWay", getUpdateWay())
//                .toString();
//    }
}
